package com.yhd.entity.query;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.validation.constraints.Min;
import java.io.Serializable;
import java.util.Date;

@Data
public class UserVO implements Serializable {
    
    
    /**
     * 主键
     */
    @Column(name = "ID")
    @Id
    @ApiModelProperty(value = "ID")
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "jdbc")
    private String id;
    
    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    @Column(name = "userName")
    private String userName;
    
    /**
     * 登录名
     */
    @ApiModelProperty(value = "登录名")
    @Column(name = "loginId")
    private String loginId;
    
    /**
     * 性别 0女 1男
     */
    @ApiModelProperty(value = "性别 0女 1男")
    @Column(name = "sex")
    private Integer sex;
    
    /**
     * 类型 customer:客户 teacher:老师  system:系统平台
     */
    @ApiModelProperty(value = "类型 customer:客户 teacher:老师  system:系统平台")
    @Column(name = "type")
    private String type;
    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型")
    @Column(name = "cardType")
    private String cardType;
    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码")
    @Column(name = "cardNo")
    private String cardNo;
    /**
     * 生日
     */
    @ApiModelProperty(value = "生日")
    @Column(name = "birthday")
    private String birthday;
    /**
     * 电话
     */
    @ApiModelProperty(value = "电话")
    @Column(name = "phone")
    private String phone;
    
    /**
     * 公司
     */
    @ApiModelProperty(value = "公司")
    @Column(name = "company")
    private String company;
    
    /**
     * 职位
     */
    @ApiModelProperty(value = "职位")
    @Column(name = "position")
    private String position;
    
    /**
     * 状态 1:生效 0:已删除  2:已冻结
     */
    @ApiModelProperty(value = "状态 1:生效 0:已删除  2:已冻结")
    @Column(name = "state")
    private Integer state;
    
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @Column(name = "createTime")
    private Date createTime;
    
    /**
     * token
     */
    @ApiModelProperty(value = "token")
    @Column(name = "authToken")
    private String authToken;
    
    
    /**
     * 老师介绍
     */
    @Column(name = "content")
    private String content;
    
    /**
     * 体验次数
     */
    @Column(name = "freeNum")
    private Integer freeNum;
    
    /**
     * 微信openId
     */
    @Column(name = "openId")
    private String openId;
    
    /**
     * 头像
     */
    @Column(name = "head")
    @ApiModelProperty(value = "头像")
    private String head;
    
    /**
     * 地区
     */
    @Column(name = "area")
    @ApiModelProperty(value = "地区")
    private String area;
    /**
     * 用户编码
     */
    @Column(name = "userNo")
    @ApiModelProperty(value = "用户编码")
    private String userNo;
    
    
    /**
     * 昵称
     */
    @Column(name = "nickname")
    @ApiModelProperty(value = "昵称")
    private String nickname;
    
    /**
     * 邀请人
     */
    @Column(name = "inviter")
    @ApiModelProperty(value = "邀请人")
    private String inviter;
    
    
    /**
     * 推荐人
     */
    @Column(name = "referrer")
    @ApiModelProperty(value = "推荐人")
    private String referrer;
    
    //页码
    @Min(value = 0)
    private Integer pageNum = 1;
    
    //每页显示数量
    @Min(value = 0)
    private Integer pageSize = 10;
    
    private Date registerStartTime;
    private Date registerEndTime;
    
    /**
     * 登录密码
     */
    @Column(name = "password")
    private String password;
    
    /**
     * 关联的课程id
     */
    @ApiModelProperty(value = "关联的课程id")
    @Column(name = "courseId")
    private Integer courseId;

    /**
     * 邀请码
     */
    @ApiModelProperty(value = "邀请码")
    @Column(name = "courseId")
    private String invitationCode;
    /**
     * 被邀请码
     */
    @ApiModelProperty(value = "被邀请码")
    @Column(name = "invitedCode")
    private String invitedCode;

    /**
     * 角色
     */
    @ApiModelProperty(value = "角色：0=默认值，1=销售，2=教员，3=班主任，4=其他")
    @Column(name = "role")
    private Integer role;
}
